//单例模式  ----只能创建一次实例
package Synchronized;

/**
 * 饿汉模式
 *        -----一开始就加载出唯一的实例
 * 线程安全的-------只有读的操作，没有修改操作。
 */

public class SingletonMode1 {
    static SingletonMode1 instance=new SingletonMode1();

    private SingletonMode1() {
    }

    static SingletonMode1 getInstance(){
        return instance;
    }

}


/**
 * 懒汉模式
 *         -----需要才加载出唯一实例对象
 * 线程不安全的------多个线程一起调用getInstance方法，同时进入if()里面。
 */
class SingletonMode2{
    static SingletonMode2 instance=null;

    private SingletonMode2() {
    }

    static SingletonMode2 getInstance(){
        if(instance==null){
            instance =new SingletonMode2();
        }
        return instance;

    }
}
